package com.example.demo.controller;

import org.springframework.security.access.annotation.Secured;
import org.springframework.security.access.prepost.PostAuthorize;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * @author tds
 * @version 1.0.0
 * @Company
 * @ClassName LoginController
 * @Description TODO（这里用一句话描述这个类的作用)
 * @Date 2022-03-29 23:46
 */
@Controller
public class LoginController {

    /**
     * 登录后的首页
     *
     * @return
     */
    @RequestMapping("toMain")
    // 需要有abc角色才可以登录.PreAuthorize注解这里的hasRole的参数可以是”ROLE_”开头的，也可以不用”ROLE_"开头。
    // 但配置类中的hasRole方法必须用"ROLE_"开头
//    @Secured({"ROLE_abc"})
//    @PreAuthorize("hasRole('abc')")
    // 方法执行前需要有admin权限
    @PreAuthorize("hasAnyAuthority('admin')")
    // 方法执行后需要有admin权限
//    @PostAuthorize("hasAnyAuthority('admin')")
    public String toMain() {
        return "redirect:main.html";
    }

    /**
     * 登录失败页
     * @return
     */
    @RequestMapping("toError")
    public String toError() {
        return "redirect:error.html";
    }
}
